export function calcSize(size) {
	if (!size) return "0 K";
	if (size < 102.4) {
		return size + " B";
	}
	let num = size / 1024;
	if (num > 1024) {
		num = num / 1024;
		return num.toFixed(2) + " M";
	} else {
		return num.toFixed(2) + " K";
	}
}

/**
 * 下载网络地址文件并重命名
 * download('ab.png', 'https://www.baidu.com/img/baidu_resultlogo@2.png')
 */

/**
 * 下载
 * @param  {String} url 目标文件地址
 * @param  {String} filename 想要保存的文件名称
 */
export function downloadFile(filename, url, opts) {
	getBlob(url, blob => {
		saveAs(blob, filename);
	}, err => {
		if(opts && opts.hasOwnProperty('error')) {
			opts.error(err);
		}
	});
}

/**
 * 获取 blob
 * @param  {String} url 目标文件地址
 * @return {cb} 
 */
function getBlob(url, cb, cb2) {
	var xhr = new XMLHttpRequest();
	xhr.open('GET', url, true);
	xhr.responseType = 'blob';
	xhr.onload = () => {
		if (xhr.status === 200) {
			cb(xhr.response);
		}
		if (xhr.status === 500) {
			cb2(xhr.response);
		}
	};
	xhr.send();
}

/**
 * 保存
 * @param  {Blob} blob     
 * @param  {String} filename 想要保存的文件名称
 */
function saveAs(blob, filename) {
	if (window.navigator.msSaveOrOpenBlob) {
		navigator.msSaveBlob(blob, filename);
	} else {
		var link = document.createElement('a');
		var body = document.querySelector('body');

		link.href = window.URL.createObjectURL(blob);
		link.download = filename;

		// fix Firefox
		link.style.display = 'none';
		body.appendChild(link);

		link.click();
		body.removeChild(link);

		window.URL.revokeObjectURL(link.href);
	};
}
